package org.summer.lawyer.domain.bo.userwalletlog;

import io.github.linpeilie.annotations.AutoMapper;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.summer.common.mybatis.core.domain.BaseEntitySearch;
import org.summer.lawyer.domain.UserWalletLog;

import java.io.Serial;

/**
 * 用户钱包流水记录业务对象 user_wallet_log
 *
 * @author summer
 * @date 2024-06-28
 */
@Schema(title ="用户钱包流水记录视图对象 user_wallet_log", description = "用户钱包流水记录视图对象 user_wallet_log")
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = UserWalletLog.class, reverseConvertGenerate = false)
public class UserWalletLogBo extends BaseEntitySearch {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    @Schema(title = "id", type = "Long", description = "主键ID")
    //@NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
    private Long id;

    /**
     * 用户ID
     */
    @Schema(title = "wxUserId", type = "Long", description = "用户ID")
    //@NotNull(message = "用户ID不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long wxUserId;

    /**
     * 流水号
     */
    @Schema(title = "walletNo", type = "String", description = "流水号")
    //@NotBlank(message = "流水号不能为空", groups = { AddGroup.class, EditGroup.class })
    private String walletNo;

    /**
     * 业务ID
     */
    @Schema(title = "targetUuid", type = "String", description = "业务ID")
    //@NotBlank(message = "业务ID不能为空", groups = { AddGroup.class, EditGroup.class })
    private String targetUuid;

    /**
     * 业务类型
     */
    @Schema(title = "targetType", type = "String", description = "业务类型")
    //@NotBlank(message = "业务类型不能为空", groups = { AddGroup.class, EditGroup.class })
    private String targetType;

    /**
     * 操作类型（收入，提现）
     */
    @Schema(title = "actionType", type = "String", description = "操作类型（收入，提现）")
    //@NotBlank(message = "操作类型（收入，提现）不能为空", groups = { AddGroup.class, EditGroup.class })
    private String actionType;

    /**
     * 变动前金额（单位分）
     */
    @Schema(title = "preAmount", type = "Long", description = "变动前金额（单位分）")
    //@NotNull(message = "变动前金额（单位分）不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long preAmount;

    /**
     * 变动金额（单位分）
     */
    @Schema(title = "amount", type = "Long", description = "变动金额（单位分）")
    //@NotNull(message = "变动金额（单位分）不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long amount;

    /**
     * 变动后金额（单位分）
     */
    @Schema(title = "postAmount", type = "Long", description = "变动后金额（单位分）")
    //@NotNull(message = "变动后金额（单位分）不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long postAmount;

    /**
     * 备注
     */
    @Schema(title = "remark", type = "String", description = "备注")
    //@NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String remark;


}
